package com.yunkeji.common.core.domain.event;

import cn.hutool.json.JSONUtil;
import lombok.Builder;
import lombok.Data;
import lombok.extern.slf4j.Slf4j;

import java.io.Serializable;
import java.math.BigDecimal;

/**
 * 支付日志事件
 *
 * @author Lion Li
 */
@Data
@Slf4j
@Builder
public class PayLogEvent implements Serializable {

    private static final long serialVersionUID = 1L;

    /** 用户ID */
    private Long userId;
    /**
     * 收益_接受视频(201), 收益_接受语音(202), 收益_接收礼物(203), 收益_会员签到(204), 收益_文字聊天收益(205), 收益_活动奖励(206),
     * 收益_任务奖励(207), 收益_邀请加入收益(208), 收益_邀请充值收益(209), 收益_充值金币(210),
     */
    private Integer logType;
    /** 符号(+,-) */
    private String symbol;
    /** 余额类型(金币,钻石) */
    private Integer balanceType;

    private String remark;
    /** 变更数量 */
    private BigDecimal changeNum;

    /** 创建日期 yyyyMMdd */
    private String logDate;

    private Integer status;
    /**
     * 钱包变化快照
     *
     * @author 老张
     */
    private String walletSnapBefore;

    /**
     * 钱包变化快照
     *
     * @author 老张
     */
    private String walletSnapAfter;

    /**
     * 溯源id
     *
     * @author 老张
     */
    private Long traceId;

    @Override
    public String toString() {
        return JSONUtil.toJsonPrettyStr(this);
    }
}
